﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FinalFantasy6Randomizer
{
    class Rage
    {
        public int Address { get; set; }
        public int Value { get; set; }
    }

    class StartingRages
    {
        public List<Rage> Rages { get; set; }
        private static readonly StartingRages instance = new StartingRages();

        private StartingRages()
        {
            SetStartingRages();
        }

        public static StartingRages GetStartingRages()
        {
            return instance;
        }

        public void Reset()
        {
            SetStartingRages();
        }

        private void SetStartingRages()
        {
            Rages = new List<Rage>
                        {
                            new Rage { Address = 0x47aa0, Value = 0x02 }, // Soldier    
                            new Rage { Address = 0x47aa1, Value = 0x08 }, // Brawler    
                            new Rage { Address = 0x47aa1, Value = 0x10 }, // Apokryphos 
                            new Rage { Address = 0x47aa1, Value = 0x40 }, // Whisper    
                            new Rage { Address = 0x47aa2, Value = 0x08 }, // Were-Rat   
                            new Rage { Address = 0x47aa2, Value = 0x20 }, // Rhinotaur  
                            new Rage { Address = 0x47aa3, Value = 0x02 }, // Lobo       
                            new Rage { Address = 0x47aa4, Value = 0x02 }, // Mesosaur   
                            new Rage { Address = 0x47aa5, Value = 0x04 }, // Vulture    
                            new Rage { Address = 0x47aa5, Value = 0x20 }, // Trapper    
                            new Rage { Address = 0x47aa5, Value = 0x40 }, // Hornet     
                            new Rage { Address = 0x47aa6, Value = 0x01 }, // Delta Bug  
                            new Rage { Address = 0x47aa6, Value = 0x10 }, // Tumbleweed 
                            new Rage { Address = 0x47aa6, Value = 0x40 }, // Trilobiter 
                            new Rage { Address = 0x47aa7, Value = 0x01 }, // Nautiloid  
                            new Rage { Address = 0x47aa7, Value = 0x02 }, // Exocite    
                            new Rage { Address = 0x47aa8, Value = 0x04 }, // M-TekArmor 
                            new Rage { Address = 0x47aa8, Value = 0x08 }, // Sky Armor  
                            new Rage { Address = 0x47aa9, Value = 0x01 }, // Ing        
                            new Rage { Address = 0x47aa9, Value = 0x02 }, // Humpty     
                            new Rage { Address = 0x47aa9, Value = 0x20 }, // Repo Man   
                            new Rage { Address = 0x47aab, Value = 0x08 }, // Crawler    
                            new Rage { Address = 0x47aab, Value = 0x10 }, // Sand Ray   
                            new Rage { Address = 0x47aab, Value = 0x40 }, // Actaneon   
                            new Rage { Address = 0x47aad, Value = 0x10 }, // Iron Fist  
                            new Rage { Address = 0x47aae, Value = 0x02 }, // Vector Pup 
                            new Rage { Address = 0x47aaf, Value = 0x20 }, // Wart Puck  
                            new Rage { Address = 0x47ab0, Value = 0x08 }, // Dragon     
                            new Rage { Address = 0x47ab1, Value = 0x01 }, // Gobbler    
                            new Rage { Address = 0x47ab2, Value = 0x04 }, // Crusher    
                            new Rage { Address = 0x47ab3, Value = 0x20 }, // PlutoArmor 
                            new Rage { Address = 0x47ab3, Value = 0x40 }, // Tomb Thumb 
                            new Rage { Address = 0x47ab3, Value = 0x80 }, // HeavyArmor 
                            new Rage { Address = 0x47ab4, Value = 0x10 }, // Misfit     
                            new Rage { Address = 0x47ab5, Value = 0x01 }, // GreaseMonk 
                            new Rage { Address = 0x47ab5, Value = 0x10 }, // Pan Dora   
                            new Rage { Address = 0x47ab6, Value = 0x40 }, // Spectre    
                            new Rage { Address = 0x47ab8, Value = 0x04 }, // Sp Forces  
                            new Rage { Address = 0x47ab8, Value = 0x10 }, // Wizard     
                            new Rage { Address = 0x47ab9, Value = 0x02 }, // Poppers    
                            new Rage { Address = 0x47ab9, Value = 0x08 }, // Garm       
                            new Rage { Address = 0x47ab9, Value = 0x80 }, // Rinn       
                            new Rage { Address = 0x47aba, Value = 0x02 }, // Vermin     
                            new Rage { Address = 0x47aba, Value = 0x80 }, // Dante      
                            new Rage { Address = 0x47abb, Value = 0x02 }, // Dueller    
                            new Rage { Address = 0x47abb, Value = 0x04 }, // Psychot    
                            new Rage { Address = 0x47abb, Value = 0x40 }, // Balloon    
                            new Rage { Address = 0x47abc, Value = 0x02 }, // Scorpion   
                            new Rage { Address = 0x47abc, Value = 0x08 }, // Spit Fire  
                            new Rage { Address = 0x47abc, Value = 0x40 }, // Osprey     
                            new Rage { Address = 0x47abd, Value = 0x08 }, // Abolisher  
                            new Rage { Address = 0x47abd, Value = 0x80 }, // 1st Class  
                            new Rage { Address = 0x47abe, Value = 0x04 }, // Borras     
                        };
        }
    }
}
